//
//  KKStatusListViewModel.swift
//  KKWeibo
//
//  Created by kassia on 16/7/15.
//  Copyright © 2016年 kassia. All rights reserved.
//

import UIKit

class KKStatusListViewModel: NSObject {

    lazy var tableViewList: [KKStatusViewModel] = [KKStatusViewModel]()
    // 加载数据
    func loadstatus(isPullUp: Bool,callback: (isSucess: Bool,messagge: String)->()) {
        
       //上拉加载默认值0
        var maxID: Int64 = 0
        var sinceID: Int64 = 0
        
        if isPullUp {
        
            //  获取数组里面最后一个元素
            maxID = tableViewList.last?.status?.id ?? 0
            
            if maxID > 0 {
            
                maxID -= 1
            
            }
        } else {
        
            //  获取数组里面第一个元素
           sinceID = tableViewList.first?.status?.id ?? 0
            
        }
    
        var message = "没有加载到最新数据"
        KKNetworkTool.sharedTools.getUserAccount(maxID, since_id: sinceID) { (response, error) -> () in
            
            if error != nil {
                
                print(error)
                callback(isSucess: false,messagge: message)
                
                return
            }

            //成功回调
            guard let  dict = response as? [String: AnyObject] else {
                
                print("这不是一个正确的字典格式")
                 callback(isSucess: false,messagge: message)
                return
            }
            
            guard let statusDicArray = dict["statuses"] as? [[String: AnyObject]] else {
                
                print("这不是一个正确是数组字典")
                 callback(isSucess: false,messagge: message)
                return
            }
            
            var tempArray = [KKStatusViewModel]()
            
            for statusDic in statusDicArray {
                
                //字典转模型
                let status = KKStatus(dic: statusDic)
                
                let statusModel = KKStatusViewModel(status: status)
                
                tempArray.append(statusModel)
                
            }
//             self.tableViewList.appendContentsOf(tempArray)
            if isPullUp {
                // 上拉加载更多
             
                self.tableViewList.appendContentsOf(tempArray)
            } else {
             
                // 下拉刷新
                self.tableViewList.insertContentsOf(tempArray, at: 0)
                
                if tempArray.count > 0 {
                
                    message = "加载了\(tempArray.count)条数据"
                
                }
            
            }
              // 执行到这一步 就一定有值
            callback(isSucess: true,messagge: message)
        }
        
    }

}
